home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-27 | 1.3 KB | 46 lines | [TEXT/YHS2] |
-
- -- This is the interface to the primitives used to implement arbitrary
- -- sized tuples.
-
- interface PreludeTuplePrims where
-
- {-# Prelude #-}
-
-
- import PreludeTuple(Tuple,TupleDicts)
-
- -- The type checker fiddles around with the call to dictSel to use the
- -- dictionary to resolve the overloading of a subexpression. The call
- -- dictSel (exp dict i) will typecheck exp and use the ith component of
- -- the tupleDict dict to resolve the overloading. No check is made to ensure
- -- that the type of the dictionary matches the overloaded class! Beware!
-
- tupleSize :: TupleDicts -> Int
- tupleSel :: Tuple -> Int -> Int -> a
- dictSel :: TupleDicts -> Int -> a
- listToTuple :: [a] -> Tuple
- -- These are not called by haskell code directly; these are introduced
- -- during dictionary conversion by the type checker.
- tupleEqDict :: a
- tupleOrdDict :: a
- tupleIxDict :: a
- tupleTextDict :: a
- tupleBinaryDict :: a
-
- {-#
- tupleSize :: LispName("prim.tupleSize"), Complexity(1)
- tupleSel :: LispName("prim.tupleSel")
- dictSel :: LispName("prim.dict-sel")
- listToTuple :: LispName("prim.list->tuple"), NoConversion
- tupleEqDict :: LispName("prim.tupleEqDict")
- tupleOrdDict :: LispName("prim.tupleOrdDict")
- tupleIxDict :: LispName("prim.tupleIxDict")
- tupleTextDict :: LispName("prim.tupleTextDict")
- tupleBinaryDict :: LispName("prim.tupleBinaryDict")
-
- #-}
-
-
-
-
-